// 封装处理数组成树的功能文件
export const treeFn = arr => {
  const newArr = [] // 最终要输出的转成树的数组
  const map = {} // id与对象一一映射关系的对象
  arr.forEach(obj => {
    map[obj.id] = obj // 属性名是id 与之对应的属性值是对象
  })
  arr.forEach(obj1 => {
    const res = map[obj1.pid] // 去一一映射的数组中寻找是否有对应的id,如果有代表其是他的下属
    if (res) { // 代表是下属
      (res.children || (res.children = [])).push(obj1)
    } else { // 代表不是任何人的下属
      newArr.push(obj1)
    }
  })
  return newArr
}
